In large distributed computing systems, a number of host computers are typically connected to a number of direct access storage devices (DASDs), such as tape or disk drive units, by a storage controller. Among other functions, the storage controller handles connection and disconnection between a particular computer and a DASD for transfer of a data record. In addition, the storage controller stores data in electronic memory for faster input and output operations.
The International Business Machines (IBM) Corporation (Armonk, N.Y.) Enterprise Storage Server™ (“ESS”), is an example of a storage controller which controls connections between magnetic disk units and host computers. The host computers are typically main frame systems such as the IBM 3090™, the Model ES/9000®, or other comparable systems.
A typical IBM storage controller can handle up to sixteen channels from host computers and up to sixty-four magnetic storage units. The host computers are connected to the storage controller by between one and four channels. A storage controller typically has two storage clusters, each of which provides for selective connection between a host computer and a direct access storage device and each preferably being on a separate power boundary. Each cluster might include a multipath storage director with first and second storage paths, a shared control array (SCA), a cache memory and a non-volatile storage (“NVS”) memory. The SCA is a memory array which is shared over all storage paths.
Cache is best known for its application as an adjunct to computer memory where it is used as a high speed storage for frequently accessed instructions and data. The length of time since last use of a record is used as an indicator of frequency of use. Cache is distinguished from system memory in that its contents are aged from the point of time of last use. In a computer memory address space, program data has to be released before data competing for space in the address space gains access. In cache, competition for space results in data falling out of the cache when they become the least recently used data. While infrequently accessed data periodically enter cache, they will tend to “age” and fall out of cache. Data in cache is duplicated, in whole or in part, in nonvolatile memory. Reading data from (and writing data to) the magnetic media of the direct access storage devices is fairly time consuming. Among the factors slowing the read and write operations are time required for the magnetic disk to bring a record location into alignment with a transducer and the limited bandwidth of the magnetic transducer used to read and write the data. By duplicating frequently accessed data in cache, read time for data is reduced and data storage system throughput is considerably enhanced.
In each cluster, non-volatile storage serves as a backup to the cache for the buffering function (see FIG. 3). Access to NVS is faster than access to a direct access storage device, but generally slower than cache. Data are branched to cache and to NVS to back up the cache in case of power failure. Data written to NVS have been treated as being as safe as if written to magnetic media. Upon staging of a data record to NVS, an indication is given to the host computer that the data was successfully stored.
A conventional storage control unit is typically designed so that no single point of failure in the unit will cause a failure of the entire system. The failure of certain components, however, can cause a degradation in performance of the control unit. A failure in cache, for example, typically results in such a performance degradation. Unfortunately, host systems have become tuned and therefore so reliant on the speed afforded by a fully functional cache, that the performance degradation associated with a failure in cache has the same effect as a single point failure.
The need in the art for a system and technique for mitigating performance degradation in a storage control unit associated with a failure in cache memory associated therewith is addressed, for example, by the invention of commonly-assigned U.S. Pat. No. 5,437,022 entitled “STORAGE CONTROLLER HAVING ADDITIONAL CACHE MEMORY AND A MEANS FOR RECOVERING FROM FAILURE AND RECONFIGURING A CONTROL UNIT THEREOF IN RESPONSE THERETO”, issued Jul. 25, 1995, which is incorporated herein by reference. The invention therein provides a storage controller with two cache memories, two nonvolatile storage buffers. The NVS memory of one cluster backs up a cache memory of the other cluster, such as through a processor (see FIG. 4). The storage controller also includes microcode for recovering from failure and reconfiguring the control unit thereof in response thereto. When DASD Fast Write is performed, the write data is transferred into the cache and NVS at the same time. The system is designed to provide continuous availability to extended function operations (e.g., DASD Fast Write and Dual Copy) even when a failure of cache or NVS occurs. (DASD Fast Write is an operation in which data to be written to the storage device is written to cache and backed up in nonvolatile memory. Dual Copy involves a designation of and preservation of data for later backup to a storage device.) Other commonly-assigned patents which are directed toward improving the robustness of storage sub-systems and reducing performance degradation in the event of a component failure include U.S. Pat. Nos. 6,006,342, entitled “FAILOVER AND FAILBACK SYSTEM OR A DIRECT ACCESS STORAGE DEVICE”, issued Dec. 21, 1999, and 5,771,367 entitled “STORAGE CONTROLLER AND METHOD FOR IMPROVED FAILURE RECOVERY USING CROSS-COUPLED CACHE MEMORIES AND NONVOLATILE STORES”, issued Jun. 23, 1998, both of which are incorporated herein by reference.
While NVS will maintain data in the event of a power failure, a disadvantage is that NVS requires a special, battery backed memory sub-system which increases the cost of a storage controller. One technique which does not employ NVS is for each cluster to transfer the entire cache to disk in the event of a power failure (see FIG. 5). When power is restored, the cache may be restored from the disk.
However, a disadvantage of such a “firehose dump” approach is that the amount of battery power required to process the transfer is proportional to the size of the memory to be protected. Consequently, the firehose dump approach is uneconomical in a system with a very large cache memory.
Moreover, in the event that one of the clusters fails to recover following the power failure, some portion of data, including modified data, may be unavailable to the customers of the data processing system.
Consequently, there remains a need for a system and technique for protecting data, especially modified data, in the event of a power failure or comparable occurrence without a special battery backed memory sub-system and to prevent the loss of data even if a cluster fails to be restored.